home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / mg / src.lzh / amiga / lmkfile < prev    next >
Text File  |  1990-05-23  |  4KB  |  108 lines

  1. #
  2. # lmkfile for mg3 and beyond, for use with Lattice v5.02 and beyond.
  3. #
  4. .SILENT
  5.  
  6. # Names of the directories where we find sources
  7. MG = /mg
  8. AMIGA = /amiga
  9.  
  10. #
  11. # set things up so we get .o files built correctly
  12. #
  13. INCS = -i$(AMIGA) -i/h
  14. LCFLAGS = -caufs -d0 -ma -qram: -rr -O $(INCS)
  15.  
  16. .c.o:
  17.     lc $(LCFLAGS) -o$@ $*
  18.  
  19. # list of amiga-specific source files
  20. AMIGASRC1 = /amiga/ttymouse.c /amiga/ttymenu.c /amiga/menustack.c \
  21.     /amiga/iconify.c /amiga/ttyicon.c /amiga/spawn.c /amiga/offset.c
  22.     
  23.  
  24. AMIGASRC2 =/amiga/ttyio.c /amiga/tty.c /amiga/ttykbd.c /amiga/fileio.c \
  25.     /amiga/console.c /amiga/dirio.c /amiga/rexx.c
  26.  
  27. # list of mg system-independent source files
  28. MGSRC1 = /mg/macro.c /mg/regex.c /mg/re_search.c /mg/dired.c /mg/basic.c \
  29.     /mg/dir.c /mg/file.c /mg/line.c /mg/match.c /mg/paragraph.c \
  30.     /mg/random.c /mg/region.c /mg/search.c /mg/version.c /mg/window.c
  31.  
  32. MGSRC2 = /mg/word.c /mg/buffer.c /mg/display.c /mg/echo.c /mg/extend.c \
  33.     /mg/help.c /mg/kbd.c /mg/keymap.c /mg/main.c /mg/modes.c /mg/cinfo.c \
  34.     /mg/bind.c /mg/alloca.c
  35.  
  36. # list of amiga-specific object files
  37. AMIGAOBJ = ttymouse.o ttymenu.o menustack.o iconify.o ttyicon.o spawn.o \
  38.     ttyio.o tty.o ttykbd.o fileio.o console.o dirio.o offset.o rexx.o
  39.  
  40. # list of mg objects
  41. MGOBJ1 = macro.o regex.o re_search.o dired.o basic.o dir.o file.o line.o \
  42.     match.o paragraph.o random.o region.o search.o version.o window.o
  43. MGOBJ2 = word.o buffer.o display.o echo.o extend.o help.o kbd.o keymap.o \
  44.     main.o modes.o bind.o cinfo.o alloca.o
  45.  
  46. OBJ = $(MGOBJ1) $(MGOBJ2) $(AMIGAOBJ)
  47.  
  48. #
  49. # The editor
  50. #
  51. xmg:    $(OBJ) tmp.lnk
  52.     blink with tmp.lnk
  53.  
  54. tmp.lnk:
  55.     echo "From lib:cres.o $(AMIGAOBJ) " noline > tmp.lnk1
  56.     echo "$(MGOBJ1) " noline > tmp.lnk2
  57.     echo "$(MGOBJ2) $(REXXOBJ) " noline > tmp.lnk3
  58.     echo "to xmg lib lib:lcr.lib lib:amiga.lib map nil:" > tmp.lnk4
  59.     echo "SMALLCODE SMALLDATA NODEBUG" > tmp.lnk5
  60.     echo "DEFINE @_main=@_tinymain" > tmp.lnk6
  61.     join tmp.lnk1 tmp.lnk2 tmp.lnk3 tmp.lnk4 tmp.lnk5 tmp.lnk6 as tmp.lnk
  62.     rm tmp.lnk?
  63.  
  64. clean:
  65.     -rm $(AMIGAOBJ)
  66.     -rm $(MGOBJ1)
  67.     -rm $(MGOBJ2)
  68.     -rm xmg tmp.lnk rexxobj.make
  69.  
  70. #
  71. # build the dependency list for the .h files used by all sources. We do
  72. # this in multiple passes so to avoid problems with the long command line
  73. # generate when you slap all the sources together.
  74. # Note that there are faster, but more environment-dependent, ways to do
  75. # turn the output of the makemake's into an lmkfile. We avoid those
  76. # on purpose.
  77. #
  78. depend: rexxobj.make
  79.     @echo "Making dependencies. The following include files will be missing:"
  80.     @echo "config.h lisp.h syntax.h"
  81.     @makemake >ram:mg-amg1 $(INCS) $(AMIGASRC1)
  82.     -@grep "Couldn't open" ram:mg-amg1
  83.     @makemake >ram:mg-amg2 $(INCS) $(AMIGASRC2)
  84.     -@grep "Couldn't open" ram:mg-amg2
  85.     @makemake >ram:mg-mg1 $(INCS) $(MGSRC1)
  86.     -@grep "Couldn't open" ram:mg-mg1
  87.     @makemake >ram:mg-mg2 $(INCS) $(MGSRC2)
  88.     -@grep "Couldn't open" ram:mg-mg2
  89.     -@grep >ram:mgx-amg1 -v "Couldn't open" ram:mg-amg1
  90.     -@grep >ram:mgx-amg2 -v "Couldn't open" ram:mg-amg2
  91.     -@grep >ram:mgx-mg1 -v "Couldn't open" ram:mg-mg1
  92.     -@grep >ram:mgx-mg2 -v "Couldn't open" ram:mg-mg2
  93.     @delete ram:mg-mg1 ram:mg-mg2 ram:mg-amg1 ram:mg-amg2
  94.     @join rexxobj.make /amiga/lmkfile \
  95.         ram:mgx-mg1 ram:mgx-mg2 ram:mgx-amg1 ram:mgx-amg2 \
  96.         as lmkfile
  97.     @delete ram:mgx-mg1 ram:mgx-mg2 ram:mgx-amg1 ram:mgx-amg2
  98.  
  99. # This turns the otherwise unused rexxobj.h into a define as to where the
  100. # rexx object files live.
  101. rexxobj.make: rexx.h
  102.     @echo "Creating rexxobj.make"
  103.     @echo >ram:editcoms "M1;E/\#define REXX/REXXOBJ =/; Q"
  104.     -@edit from rexx.h to rexxobj.make with ram:editcoms
  105.     @delete ram:editcoms
  106.  
  107. # file dependencies will be appended after this line by "make depend"
  108.